package com.jsonal.service.api;

import com.jsonal.entity.api.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jsonal.entity.api.UserBean;
import com.jsonal.vo.Result;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author auto
 * @since 2020-04-20
 */
public interface UserService extends IService<User> {

    /**
     * 用户注册
     * @param userBean model
     * @return res
     */
    Result register(UserBean userBean);

    /**
     * 根据手机号获取验证码
     * @param telephone 手机号
     * @return res
     */
    Result getValidCode(String telephone);

    /**
     * 登录
     * @param userBean model
     * @return res
     */
    Result login(UserBean userBean);

    /**
     * 分页获取用户列表
     * @param userBean model
     * @return res
     */
    Result getUserList(UserBean userBean);

    /**
     * 根据 id 修改状态
     * @param id 用户 id
     * @param state 修改后的状态
     * @return res
     */
    Result changeState(String id, Boolean state);

    /**
     * 添加或修改用户
     * @param userBean 用户实体
     * @return res
     */
    Result addOrUpdate(UserBean userBean);

    /**
     * 根据用户 id 获取信息
     * @param id 用户 id
     * @return res
     */
    Result getUserById(String id);

    /**
     * 根据用户 id 删除用户
     * @param id 用户 id
     * @return res
     */
    Result removeUser(String id);

    /**
     * 获取用户信息
     * @param userBean bean
     * @return res
     */
    Result getUserInfo(UserBean userBean);
}
